package com.xhsj.user.pms.patent.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.google.common.collect.Lists;
import com.xhsj.user.generalprocess.entity.TbPamGeneralOpinionFile;
import com.xhsj.user.hr.base.BaseEntity;
import com.xhsj.user.pms.patent.domain.TbPamOverseasApplyFile;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 专利模块海外流程执行vo
 * </p>
 *
 * @author suxiaolin
 * @since 2021-01-25
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class OverseasApplyAuditVo extends BaseEntity<OverseasApplyAuditVo> {

    private static final long serialVersionUID = 1L;

    /**
     * 海外案件申请名称
     */
    private String name;

    /**
     * 交底书id
     */
    private String disclosureId;

    /**
     * 国内交底书名称
     */
    private String disclosureName;

    /**
     * tb_pam_overseas_regional_details主键id关联
     */
    private Long regionalDetailsId;

    /**
     * 节点id
     */
    private Long nodeId;

    /**
     * 节点名称
     */
    private String nodeName;

    /**
     * 优先权号
     */
    private String priorityNum;

    /**
     * 优先权日
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date priorityDate;

    /**
     * 优先权届满日
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date priorityApplyExpiration;

    /**
     * 优先权申请号
     */
    private String applicationNum;

    /**
     * 海外申请号
     */
    private String overseasApplyNum;

    /**
     * 海外事务所名称
     */
    private String overseasOfficeName;

    /**
     * 外所案号
     */
    private String overseasOfficeNum;

    /**
     * PCT申请号
     */
    private String pctApplyNum;

    /**
     * 海外申请类型表id
     * @author 苏小林
     * @date 2021/3/11 14:16
     */
    private Integer applyTypeId;

    /**
     * PCT届满日
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date pctApplyExpiration;

    /**
     * 发明名称
     */
    private String inVentName;

    /**
     * 相关案
     */
    private String relatedNum;

    /**
     * PCT申请日
     */
    private String pctApplyDate;

    /**
     * 国际公开号
     */
    private String internationalPublicNum;

    /**
     * 国际公开日
     */
    private String internationalPublicDate;

    /**
     * 海外案件案卷号
     */
    private String overseasArchivesNum;

    /**
     * IPR
     */
    private Long ipr;

    private String iprName;

    /**
     * 权利要求项
     */
    private String claims;


    private List<TbPamOverseasApplyFile> applyFileList = Lists.newArrayList();

    private Integer status;

    private Long processTaskId;

    private String opinionText;

    private List<TbPamGeneralOpinionFile> opinionFiles = Lists.newArrayList(); // 意见文件

    @NotNull(message = "国家/地区不能为空")
    @Size(min = 1,message = "国家/地区不能为空")
    @Valid
    private List<String> countryNames = Lists.newArrayList(); // 选择国家名称


}
